home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 12 / Mac Magazin and MacEasy Magazine CD - Issue 12.iso / Sharewarebibliothek / Anwendungen / Grafik / MacRTrace1.8.4.2 ƒ / MacRTrace Docs / MacRTrace Docs.rsrc / TEXT_141.txt < prev    next >
Text File  |  1995-06-22  |  17KB  |  511 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6. rtrace - ray tracing program  Antonio  Costa,  INESC-Norte,  1989
  7. 1994  command  performs  ray  tracing from a text file which must
  8. describe a  scene  with  objects,  lights,  surface  definitions,
  9. textures,  etc.   This  scene  file  must  be  in the appropriate
  10. format, as described bellow.
  11.  
  12. Basically, ray tracing  is  an  algorithm  for  the  creation  of
  13. realistic  images  from  the  geometry and attributes of objects,
  14. lights, etc.  This ray tracer supports several types  of  objects
  15. (sphere,  box,  bicubic  patch, cone, cylinder, polygon, triangle
  16. and text),  CSG  and  list  operations,  different  light  types,
  17. reasonable  surface  definitions, lots of textures, several anti-
  18. aliasing schemes, depth of field, stereoscopic image creation and
  19. so on...
  20.  
  21. [wimage-width] [himage-height]
  22. The parameters and define the image size. Defaults  are  256x256.
  23.  
  24. [Aaliasing-threshold]
  25. [Sshading-threshold]
  26. [Tambient-threshold]
  27. The parameters (pixel supersampling), (shading rays  propagation)
  28. and (ambient rays distribution caching) control the image quality
  29. (0-best, 1-poor). Defaults are  0.05,  0.01  and  0  (no  ambient
  30. threshold).  Good  ranges  are  0.1-0.03,  0.01-0.001  and  0.01-
  31. 0.00001, respectively.  If the parameter  is  negative,  contrast
  32. between   pixel  colors  will  be  used  instead  of  difference.
  33.  
  34. [aantialiasing-mode]
  35. The parameter chooses  adaptive  supersampling  antialiasing  (0-
  36. default),  semi-adaptive supersampling antialiasing (1) or normal
  37. supersampling antialiasing (2-should be used with  nonzero  focal
  38. apertures).
  39.  
  40. [Bmaskfile]
  41. The parameter creates a file with a background mask, suitable for
  42. mixing images (it is like an alpha channel).
  43.  
  44. [bbackface-mode]
  45. The parameter controls  the  removal  of  backface  polygons  and
  46. triangles  from  the  scene.   Default is no removal (0). Partial
  47. removal (1)  is  made  when  finding  candidates  for  ray-object
  48. intersection;  if  there  are any objects facing against the ray,
  49. they will be skipped. Full removal (2) is made during the read of
  50. the  scene;  if  there are any objects facing against the viewer,
  51. they  are  thrown  away  completely  (this  may  cause  incorrect
  52. lighting and shadowing).
  53.  
  54. [ccluster-size]
  55. The parameter  controls  the  enclosing  of  objects  (number  of
  56. grouped  objects  per cluster) in the object hierarchy. Use a low
  57. value for sparse scenes,  a  high  value  for  dense  scenes  (4-
  58. default).   Negative  values means to use a method similar to the
  59. one of  Goldsmith/Salmon  for  clustering  objects  (0  uses  the
  60. default  value  for  this method).  Most of the times it performs
  61. better than the default method.
  62.  
  63. [dambient-levels]
  64. The parameter defines the number of shading levels (shading  tree
  65. depth)  in  which  ambient  lighting  calculations  will  be done
  66. through ray distribution (0-default, ie,  no  ray  distribution).
  67. Use low values!
  68.  
  69. [Dambient-samples]
  70. The parameter defines the maximum number of distributed  rays  to
  71. be used in ambient lighting calculations (16-default). Again, use
  72. with care.
  73.  
  74. [iintersect-mode]
  75. The parameter chooses, in  adaptive  supersampling  antialiasing,
  76. between  testing  all scene objects (1) or only the objects found
  77. at the pixel corners and inside (0-default; this greatly  reduces
  78. CPU  time,  but  with  very  small  objects, it sometimes fails).
  79.  
  80. [Iintersect-adjust-mode]
  81. The  parameter  avoids   some   problems   with   invalid   self-
  82. intersections  (1)  (0-default).  Scenes with text objects should
  83. be traced with this parameter equal to 1.
  84.  
  85. [jjittering-mode]
  86. The parameter chooses jittered sampling (1) or  not  (0-default).
  87. Sometimes,  activating it produces better images from scenes with
  88. small tricky details.
  89.  
  90. [llighting-mode]
  91. The parameter controls the  generation  of  shadow  rays  through
  92. non-opaque  objects:   0-none  (default), 1-partial, 2-full. If a
  93. scene has translucent objects, to obtain realism one should use 1
  94. or 2 (better).
  95.  
  96. [mshading-mode]
  97. The parameter chooses between shading models: 0-normal phong,  1-
  98. strauss  (default  but slower) (note: this model was developed by
  99. Paul Strauss of SGI).
  100.  
  101. [nnormal-mode]
  102. The parameter controls the correction of surface normals, so that
  103. it  points  against the incident ray:  0-always (default), 1-only
  104. inside objects. With "correct" objects, it  is  good  to  use  1.
  105.  
  106. [xwalk-mode]
  107. The parameter controls how pixels are scanned inside the picture.
  108. Default is 0, which is a serpertine walk (left to right, right to
  109. left, and so on).  1  means  an  Hilbert  (fractal)  walk,  which
  110. demands  more memory, but maximizes the effect of pixel coherency
  111. (in scenes with many objects, it can save some time!).  Perhaps 1
  112. should be the default...
  113.  
  114. [znormal-check-mode]
  115. The parameter controls the correction  of  surface  normals  when
  116. textures  that  modify the normal are used, as they may sometimes
  117. create strange surface effects. This tends to happen if the scale
  118. of  the  normal  perturbation is big.  0-no correction (default),
  119. 1-correction.
  120.  
  121. [Rrawfile]
  122. The parameter creates a raw image file, without any  antialiasing
  123. (all defects show up!).
  124.  
  125. [psampling-levels]
  126. The parameter controls  the  amount  of  sampling  levels  inside
  127. pixels:   0-none (default) ... 3-maximum. A reasonable value is 2
  128. for high resolutions, but for small  ones  3  gives  better  (and
  129. slower) results.
  130.  
  131. [sshading-levels]
  132. The parameter establishes a maximum shading tree  depth  (default
  133. is 8). When a scene has transparent/reflective objects, it may be
  134. important to lower this parameter,  or  else  the  tracing  never
  135. stops. In the other cases, there should be no problem allowing it
  136. to be big.
  137.  
  138. [ttexture-mode]
  139. The  parameter  allows  the  definition  of  texture(s)  for  the
  140. objects:  0-no textures (default), 1-with textures defined inside
  141. objects field, 2-with textures defined after  objects  field.  As
  142. textures may consume much CPU time, they should be activated only
  143. for final images.
  144.  
  145. [vview-mode]
  146. The parameter chooses the view mode: 0-normal  (default),  1-left
  147. eye, 2-right eye.
  148.  
  149. [Pfocal-aperture]
  150. The parameter defines the focal aperture of the  camera  (default
  151. 0.0,  ie, pinhole camera). If different than zero, there is depth
  152. of field, and so adaptive  supersampling  antialiasing  will  not
  153. work well.
  154.  
  155. [Ffocal-distance]
  156. The parameter defines the focal distance of the  camera  (default
  157. is   the  distance  from  the  eye  point  to  the  look  point).
  158.  
  159. [Estereo-separation]
  160. The parameter controls the separation between the  left  and  the
  161. right  eye.   If negative, it represents a percentage of the gaze
  162. distance.
  163.  
  164. [Ooutput-format]
  165. The parameter chooses between the PIC format (0-default)  or  the
  166. PPM format (1).
  167.  
  168. [Vverbose-mode]
  169. The parameter supresses any messages  (0)  or  shows  listing  of
  170. parameters  (1), previous plus statistics (2-default) or previous
  171. plus a line by line echo of the tracing  (3-default  on  DOS  and
  172. transputers). Note: when running the DOS DJGPP version, there are
  173. two extra values that display the picture on the screen,  -1  for
  174. grayscale  or  -2  for  color. These values supress any messages.
  175.  
  176. [+Oobjects-max]
  177. The parameter defines  the  maximum  number  of  objects  to  use
  178. (default is 25000).
  179.  
  180. [+Llights-max]
  181. The parameter  defines  the  maximum  number  of  lights  to  use
  182. (default is 16).
  183.  
  184. [+Ssurfaces-max]
  185. The parameter defines the  maximum  number  of  surfaces  to  use
  186. (default is 256).
  187.  
  188. [+Ccsg-level-max]
  189. The parameter defines the maximum number of levels in  CSG  trees
  190. to use (default is 256).
  191.  
  192. [Meeye-file]
  193. The parameter is the name of a file that contains  positions  for
  194. movie  fly-throughs  (3  real  numbers  representing  XYZ in each
  195. line). In mode, the scene is read only once and successive images
  196. are produced and stored in the picture file.
  197.  
  198. [Mllook-file]
  199. The parameter is the name of a file that contains  positions  for
  200. movie fly-throughs.
  201.  
  202. [Muup-file]
  203. The parameter is the name of a file  that  contains  vectors  for
  204. movie fly-throughs.
  205.  
  206. [Maangle-file]
  207. The parameter is the name of a file that contains  apertures  for
  208. movie  fly-throughs  (2  real  numbers  in each line).
  209.  
  210. [M+movie-frames-max]
  211. The parameter defines the maximum number  of  frames  to  produce
  212. (default  is  50).   The  data internal syntax (SFF) is described
  213. bellow.  The file will contain the ray traced image.   The  image
  214. file  has  a 4 byte header composed of LS and MS bytes, LS and MS
  215. bytes and RGB byte triplets starting in  the  upper  left  corner
  216. line by line to the lower right corner.  The straightforward use:
  217.  
  218.   rtrace demo.sff demo.pic
  219.  
  220. is not recommended, as ray tracing usually takes lots of CPU time
  221. to execute.  So, it is better to do:
  222.  
  223.   rtrace demo.sff demo.pic >demo.log &
  224.  
  225. or then use nice (1) or similar strategies.  No bugs known.  They
  226. have  to  be  hidden  deep somewhere, as usual.  SFF (Simple File
  227. Format) description follows. This is a very crude  ASCII  format,
  228. almost  like  if  generated by a lexical analyser. The idea is to
  229. have  other  programs   create   scene   descriptions   in   more
  230. sophisticated  ways,  and then feed the tokenized results to this
  231. program. So, it behaves accordingly to the UNIX  philosophy:  one
  232. program  for one task.  Complaints are not wellcome!...  There is
  233. a reasonable scene  language  available  (SCN)  that  allows  the
  234. creation  of  scenes with much more flexibility; the converter is
  235. called 'scn2sff' and works directly with this program.  Note: the
  236. ^(circunflex)  character  represents  start  of  line.
  237.  
  238. [Start ofFile]
  239. ^... Comment
  240. ^Eye(X Y Z)
  241. ^Look(X Y Z)
  242. ^Up(X Y Z)
  243. ^View_angle(H V) [1,89 degrees]
  244. ^... Comment
  245. ^Background(R G B)
  246. ^Ambient(R G B)
  247. ^... Comment
  248. ^Light_type(Type) Position(X Y Z) Bright(R G B) ...
  249.   |                                              |
  250.   |                  /---------------------------/
  251.   |                  |
  252.   V                  V
  253.  1-POINT:
  254.  2-DIRECTIONAL: Direction(X Y Z) Angle(La) Light_Factor(Lf)
  255.  3-EXTENDED:    Radius(R) Samples(N)
  256.  4-PLANAR:       Vector1(X  Y  Z)  Vector2(X  Y  Z)   Samples1(N)
  257. Samples2(N)
  258. ^Etc
  259. ^<NL>
  260. ^... Comment
  261. ^Surface_type(Type) Color(R G B) ...
  262.   |                               |
  263.   |        /----------------------/
  264.   |        |
  265.   V        V
  266.  1-: Dif(R G B) Spec(R G B) Phong(Pf) Metal(Mf) Trans(R G B)
  267.  2-: Smoothness(R G B) Metalness(R G B) Transmission(R G B)
  268. ^Etc
  269. ^<NL>
  270. ^... Comment
  271. ^Object_type(Type) Surface_ID(S) Refraction(Re) ...
  272.   |                                              |
  273.   |                     /------------------------/
  274.   |                     |
  275.   V                     V
  276.  1-SPHERE:          Center(X Y Z) Radius(R)
  277.  2-PARALLELIPIPED:  Center(X Y Z) Size(X Y Z)
  278.  3-PATCH:           Origin(X Y Z) Scale(X Y Z) Filename(...)
  279.  4-CONE/CYLINDER:   Base(X Y Z) Base_Radius(Rb) Apex(X Y Z)
  280.                     Apex_Radius(Ra)
  281.  5-POLYGON:         Origin(X Y Z) Scale(X Y Z) Filename(...)
  282.  6-TRIANGLE:        Origin(X Y Z) Scale(X Y Z) Filename(...)
  283.  7-TEXT:            Filename(...)
  284. or
  285.  64-TEXTURE:        see below
  286.  65-TRANSFORMATION: Object_ID(I)
  287.                     Transform(X1 Y1 Z1 W1 ... X4 Y4 Z4 W4)
  288.  66-CSG 0:          Surface_ID(S) Refraction(Re)  (Union-0  Sub-1
  289. Int-2)
  290.     CSG 1:          Next CSG member
  291.     CSG 2:          End of CSG
  292.  67-LIST 0:         Surface_ID(S) Refraction(Re)
  293.     LIST 1:         End of List
  294. ^Etc
  295. ^<NL>
  296. ^... Comment
  297. ^Texture_type(Type) Object_ID(I)
  298.   |                 Transform(X1 Y1 Z1 W1 ... X4 Y4 Z4 W4)
  299.   |                 ...
  300.   |                  |
  301.   V                  V
  302.  0-NULL:
  303.  1-CHECKER:   Surface_ID(S)
  304.  2-BLOTCH:    Scale(K) Surface_ID(S) [Filename(...) or -]
  305.  3-BUMP:      Scale(K)
  306.  4-MARBLE:    [Filename(...) or -]
  307.  5-FBM:       Offset(K) Scale(K) Omega(K) Lambda(L)
  308.               Threshold(K) Octaves(O)
  309.               [Filename(...) or -]
  310.  6-FBMBUMP:   Offset(K) Scale(K) Lambda(L) Octaves(O)
  311.  7-WOOD:      Color(R G B)
  312.  8-ROUND:     Scale(K)
  313.  9-BOZO:      Turbulence(K) [Filename(...) or -]
  314.  10-RIPPLES:  Frequency(K) Phase(K) Scale(K)
  315.  11-WAVES:    Frequency(K) Phase(K) Scale(K)
  316.  12-SPOTTED:  [Filename(...) or -]
  317.  13-DENTS:    Scale(K)
  318.  14-AGATE:    [Filename(...) or -]
  319.  15-WRINKLES: Scale(K)
  320.  16-GRANITE:  [Filename(...) or -]
  321.  17-GRADIENT: Turbulence(K) Direction(X Y Z)
  322.               [Filename(...) or -]
  323.  18-IMAGEMAP: Turbulence(K) Mode(K) Axis(X Y) Filename(...)
  324.  19-GLOSS:    Scale(K)
  325.  20-BUMP3:    Scale(K) Size(K)
  326. ^<NL>
  327. ^... Comments
  328. [End of File]
  329.  
  330. 1. Valid ranges of data RGB must be in [0,1[ (Note:
  331. RGB  brightness  of  lights  may  be between ]-300,300[; negative
  332. values mean to not attenuate with distance).  XYZ must be  in  [-
  333. 10000,10000]  Factor  must  be  in  [0,300[ Filename must a valid
  334. filename for the operating system, or then  '-',  in  which  case
  335. data  is  read from the standard input or the current SFF stream.
  336.  
  337. 2. Patch specification File format  for  PATCH  (bicubic  4-sided
  338. patch):
  339.  
  340. [Start]
  341. ^Patch_1_Index(1 2 3 4 5 6 7 8 9 10 11 12)
  342. ^Patch_2
  343. ^Etc
  344. ^<NL>
  345. ^Patch_Index_1_Coords(X Y Z)
  346. ^Patch_Index_2_Coords(X Y Z)
  347. ^Etc
  348. ^<NL>
  349. ^...
  350. [End]
  351.  
  352. 3. Polygon specification File format for  POLYGON  (n-sided
  353. planar polygon):
  354.  
  355. [Start]
  356. ^Polygon_1_Vertex_Number Polygon_1_Index(1 2 3 ...)
  357. ^Polygon_2
  358. ^Etc
  359. ^<NL>
  360. ^Polygon_Index_1_Coords(X Y Z)
  361. ^Polygon_Index_2_Coords(X Y Z)
  362. ^Etc
  363. ^<NL>
  364. ^...
  365. [End]
  366.  
  367. 4. Triangle specification File format for TRIANGLE (3-sided
  368. polygon with vertex normals):
  369.  
  370. [Start]
  371. ^Triangle_1_Vertice_1(X Y Z) Normal_1(X Y Z)
  372.             Vertice_2(X Y Z) Normal_2(X Y Z)
  373.             Vertice_3(X Y Z) Normal_3(X Y Z)
  374. ^Triangle_2
  375. ^<NL>
  376. ^...
  377. [End]
  378.  
  379. If the surface is has index 0,  then  you  must  specify  3
  380. surface  indices  after  all  the  vertices  and  normals.
  381.  
  382. 5. An example
  383.  
  384. [Start of File]
  385. View
  386. 25 25 7         - Eye point
  387. 0 0 0           - Look point
  388. 0 1 0           - Up vector
  389. 30 30           - View angles
  390. Colors
  391. 0.196 0.6 0.8   - Background (Sky Blue)
  392. 0.1 0.1 0.1     - Ambient light
  393. Lights
  394. 1 0 60 60 0.9 0.9 0.9  - Point Light 1
  395. 1 20 40 -7 0.9 0.9 0.9 - Point Light 2
  396. <NL>
  397. Surfaces
  398. 1 0.6 0.8 0.196 0.99 0.99 0.99 0 0 0 0 0 0 0 0
  399. 1 0.9 0.9 0.9 0.5 0.5 0.5 0.5 0.5 0.5 50 1 0 0 0
  400. 1 0.5 0.5 0.5 0.1 0.1 0.1 0.1 0.1 0.1 200 0.7 0.8 0.8 0.8
  401. 1 0.9 0.2 0.2 0.99 0.99 0.99 0 0 0 0 0 0 0 0
  402. <NL>
  403. Objects
  404. 5 1 1.0 0 0 0 15 15 15  - Polygon
  405. 4 1 2 3 4
  406. <NL>
  407. 1 0 1
  408. 1 0 -1
  409. -1 0 -1
  410. -1 0 1
  411. <NL>
  412. 2 2 1.0 0 2 0 7 2 3     - Parallelepiped
  413. 2 3 1.5 0 5 10 3 5 3    - Parallelepiped
  414. 1 4 1.0 7 15 -7 3       - Sphere
  415. <NL>
  416. Textures
  417. 2 1 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 1 0.4 4
  418. 4 2 5 0 0 0 0 5 0 0 0 0 5 0 0 0 0 1
  419. 5 4 10 0 0 0 1 10 0 0 1 1 10 0 0 0 0 1 0 0.6 0.5 2 0.1 6
  420. <NL>
  421. Demo / 11-OCT-1989 / Antonio Costa
  422. [End of File]
  423.  
  424. To ray trace without textures, do:
  425.  
  426.   rtrace demo.sff demo.pic >&demo.log
  427.  
  428. else, do:
  429.  
  430.   rtrace t2 demo.sff demo.pic >&demo.log
  431.  
  432. Another example with INESC symbol:
  433.  
  434. [Start of File]
  435. View
  436. 45.0 45.0 81.0  - Eye point
  437. 45.0 45.0 -81.0 - Look point
  438.  0.0  1.0  0.0  - Up vector
  439. 30 30           - View angles
  440. Colors
  441. 0.196 0.6 0.8 - Background (Sky Blue)
  442. 0.3 0.3 0.3   - Ambient
  443. Lights
  444. 1  0.0 100.0 100.0 1 1 1 - Light 1 (White)
  445. 1 90.0 100.0 100.0 1 1 0 - Light 2 (Yellow)
  446. <NL>
  447. Surfaces
  448. 1 0.557 0.420 0.137 0.8 0.7 0.7 0.2 0.3 0.3 30 0.8 0 0 0
  449. 1 0.137 0.420 0.557 0.5 0.5 0.6 0.5 0.5 0.4 5 0.2 0 0 0
  450. 1 0.600 0.800 0.200 0.9 0.9 0.9 0.0 0.0 0.0 1 0 0 0 0
  451. <NL>
  452. Objects
  453. 1 1 1.0 10.0 09.5 0.0 4.5 - Sphere
  454. 1 1 1.0 10.0 26.5 0.0 4.5
  455. 1 1 1.0 20.0 63.5 0.0 4.5
  456. 1 1 1.0 20.0 80.0 0.0 4.5
  457. 1 1 1.0 40.0 09.5 0.0 4.5
  458. 1 1 1.0 40.0 26.5 0.0 4.5
  459. 1 1 1.0 40.0 43.5 0.0 4.5
  460. 1 1 1.0 50.0 80.0 0.0 4.5
  461. 1 1 1.0 60.0 53.0 0.0 4.5
  462. 1 1 1.0 70.0 09.5 0.0 4.5
  463. 1 1 1.0 70.0 43.5 0.0 4.5
  464. 4 2 1.0 10.0 30.0 0.0 1.5 10.0 70.0 0.0 1.5 - Cylinder
  465. 1 2 1.0 10.0 70.0 0.0 1.5
  466. 4 2 1.0 10.0 70.0 0.0 1.5 17.5 77.5 0.0 1.5
  467. 4 2 1.0 12.5 12.0 0.0 1.5 20.0 19.5 0.0 1.5
  468. 1 2 1.0 20.0 19.5 0.0 1.5
  469. 4 2 1.0 20.0 19.5 0.0 1.5 20.0 60.0 0.0 1.5
  470. 4 2 1.0 22.5 61.0 0.0 1.5 37.5 46.0 0.0 1.5
  471. 4 2 1.0 37.5 12.0 0.0 1.5 30.0 19.5 0.0 1.5
  472. 1 2 1.0 30.0 19.5 0.0 1.5
  473. 4 2 1.0 30.0 19.5 0.0 1.5 30.0 33.5 0.0 1.5
  474. 1 2 1.0 30.0 33.5 0.0 1.5
  475. 4 2 1.0 30.0 33.5 0.0 1.5 37.5 41.0 0.0 1.5
  476. 4 2 1.0 30.0 26.5 0.0 1.5 36.5 26.5 0.0 1.5
  477. 4 2 1.0 40.0 47.0 0.0 1.5 40.0 70.0 0.0 1.5
  478. 1 2 1.0 40.0 70.0 0.0 1.5
  479. 4 2 1.0 40.0 70.0 0.0 1.5 47.5 77.5 0.0 1.5
  480. 4 2 1.0 42.5 12.0 0.0 1.5 50.0 19.5 0.0 1.5
  481. 1 2 1.0 50.0 19.5 0.0 1.5
  482. 4 2 1.0 50.0 19.5 0.0 1.5 50.0 43.0 0.0 1.5
  483. 1 2 1.0 50.0 43.0 0.0 1.5
  484. 4 2 1.0 50.0 43.0 0.0 1.5 57.5 50.5 0.0 1.5
  485. 4 2 1.0 67.5 12.0 0.0 1.5 60.0 19.5 0.0 1.5
  486. 1 2 1.0 60.0 19.5 0.0 1.5
  487. 4 2 1.0 60.0 19.5 0.0 1.5 60.0 33.5 0.0 1.5
  488. 1 2 1.0 60.0 33.5 0.0 1.5
  489. 4 2 1.0 60.0 33.5 0.0 1.5 67.5 41.0 0.0 1.5
  490. 5 3 1.0 0.0 4.0 0.0 200.0 200.0 200.0 - Polygon
  491. 4 1 2 3 4
  492. <NL>
  493.  1.0 0.0  1.0
  494.  1.0 0.0 -1.0
  495. -1.0 0.0 -1.0
  496. -1.0 0.0  1.0
  497. <NL>
  498. <NL>
  499. End
  500.  
  501. INESC Logo / 23-FEB-1989 / Antonio Costa Copyright (C) 1988, 1994
  502. Antonio Costa.
  503. Permission is granted to use this file in whole or  in  part  for
  504. any  purpose,  educational,  recreational or commercial, provided
  505. that this copyright notice is retained unchanged.  This  software
  506. is  available  to all free of charge by anonymous FTP.  08-Nov-94
  507. Antonio Costa
  508. Release 8.4.2
  509. acc@asterix.inescn.pt
  510.  
  511.